package modelo.Trayectoria;

import modelo.Orientacion.Direccion;
import modelo.Orientacion.Posicion;

public class SegmentoFijo implements Direccionable{

    private Posicion inicio;
    private Posicion fin;
    private Direccion direccion;
    private boolean avanzo;

    public SegmentoFijo(Posicion inicio, Posicion fin, Direccion direccion){
        this.inicio = inicio;
        this.fin = fin;
        this.direccion = direccion;
        this.avanzo = false;
    }

    public void avanzar() {
        if (inicio.esIgual(fin)){
            avanzo = false;
        }else{
            inicio = direccion.devolverSiguientePosicion(inicio);
            avanzo = true;
        }
    }

    public boolean avanzo(){
        return avanzo;
    }

    public Posicion devolverPosicionActual() {
        return inicio;
    }

    public Posicion devolverElFin() {
        return fin;
    }

    public boolean tienesFin() {
        return true;
    }

    public Direccion devolverDireccion(){
        return direccion;
    }
}
